package cn.b.sky.mes.pp.service;

import java.util.List;

import cn.b.sky.common.model.BatchJobReport;
import cn.b.sky.mes.pp.model.OrderType;
import cn.b.sky.mes.pp.model.condition.OrderTypeCondition;

/**
 * 
 * <strong>Title : OrderTypeService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.pp.service<br></strong>
 * <strong>Description : </strong>订单类型服务接口<br> 
 * <strong>Create on : 2016年1月7日 上午9:41:34<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface OrderTypeService {

  /**
   * 
   * <strong>Title : getOrderTypesByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午9:42:38<br></strong>
   * <p>
   * @param condition
   * @return
   * List
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> getOrderTypesByCondition(OrderTypeCondition condition);

  /**
   * 
   * <strong>Title : getOrderTypesCountByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询订单类型数量<br> 
   * <strong>Create on : 2016年1月7日 上午10:43:04<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getOrderTypesCountByCondition(OrderTypeCondition condition);

  /**
   * 
   * <strong>Title : saveOrderType<br></strong>
   * <strong>Description : </strong>保存订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午9:43:31<br></strong>
   * <p>
   * @param orderType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveOrderType(OrderType orderType);

  /**
   * 
   * <strong>Title : modifyOrderType<br></strong>
   * <strong>Description : </strong>修改订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午9:43:46<br></strong>
   * <p>
   * @param orderType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void modifyOrderType(OrderType orderType);

  /**
   * 
   * <strong>Title : deleteOrderTypeByPk<br></strong>
   * <strong>Description : </strong>删除订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午9:46:03<br></strong>
   * <p>
   * @param siteCode
   * @param productionOrderTypeNum
   * @return
   * BatchJobReport
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteOrderTypeByPk(String siteCode, String orderTypeCode);

  /**
   * 
   * <strong>Title : getOrderType<br></strong>
   * <strong>Description : </strong>根据主键查订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午10:25:40<br></strong>
   * <p>
   * @param siteCode
   * @param id
   * @return
   * OrderType
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  OrderType getOrderType(String siteCode, String orderTypeCode);

  /**
   * 
   * <strong>Title : getAllUnlockedOrderTypes<br></strong>
   * <strong>Description : </strong>查询全部未锁定的<br> 
   * <strong>Create on : 2016-1-7 下午1:31:26<br></strong>
   * <p>
   * @return
   * List<OrderType>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> getAllUnlockedOrderTypes(String siteCode);

  /**
   * 
   * <strong>Title : getAllOrderTypes<br></strong>
   * <strong>Description : </strong>查询所有的订单类型，供查询界面使用<br> 
   * <strong>Create on : 2016年5月19日 上午9:47:11<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<OrderType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> getAllOrderTypes(String siteCode);
}
